package com.aaa.controller;

import com.aaa.entity.*;
import com.aaa.service.TblTesterFpaService;
import com.aaa.service.TblTesterSasService;
import com.aaa.service.TblTesterSdsService;
import com.aaa.service.TestPlanFpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * @Author: whr
 * @Description 用户测试控制层
 * @Date 2022.07.04
 * @Modifiel
 */
@Controller
@RequestMapping("userTestLogin")
public class UserTestLoginController extends BaseController{

    @Autowired
    private TestPlanFpaService testPlanFpaService;
    @Autowired
    private TblTesterFpaService tblTesterFpaService;
    @Autowired
    private TblTesterSasService tblTesterSasService;
    @Autowired
    private TblTesterSdsService tblTesterSdsService;

    MyReturn myReturn = new MyReturn();

    @ResponseBody
    @RequestMapping("userLogin.do")
    public MyReturn userTestLogin(UserTestLogin userTestLogin, HttpSession session){
        System.out.println("userLogin");
        System.out.println(userTestLogin);
        /**
         * 邀请码
         */
        Integer testCode = userTestLogin.getTestCode();
        /**
         * 将测试人员信息保存到tblTester中
         */
        TblTester tblTester = new TblTester();
        tblTester.setPhone(userTestLogin.getPhone());
        tblTester.setName(userTestLogin.getUsername());
        /**
         * 根据邀请码查询测试类型
         * 此处的邀请码应该唯一
         */
        TblTestPlanFpa tblTestPlanFpa = testPlanFpaService.selectTblTestPlanCode(testCode);
        /**
         * 判断是否查到
         */
        if (tblTestPlanFpa!=null){
            /**
             * 说明有此测试
             */

            switch (tblTestPlanFpa.getTestType()){
                /**
                 * 判断是什么类型的测试
                 */
                case "性格测试":{
                    System.out.println("性格测试");
                    /**
                     * 去测试人员表查询是否有此人员
                     */
                    List<TblTester> tblTesters = tblTesterFpaService.selectTblTesterPhone(tblTester);
                    System.out.println(tblTesters);
                    /**
                     * 判断测试人员是否存在
                     */
                    if (null!=tblTesters && tblTesters.size()>0){
                        /**
                         * 此人员已经做过fpa测试
                         * 展示测试结果
                         */
                        System.out.println("此处应该跳转到性格测试结果页面");
                    }else {
                        System.out.println("跳转页面");
                        /**
                         * 此人员没有参加过测试，保存至fpa测试人员表中
                         */
                        tblTesterFpaService.insertTblTester(tblTester);
                        session.setAttribute("tblTester",tblTester);

                        System.out.println(tblTester+"----------------");
                        /**
                         * 讲跳转链接保存至data中
                         */
                        myReturn.setData("/views/testQuestionFPA.jsp");
                    }
                    return super.getSuccessResult(myReturn);
                }
                case "sas测试":{
                    System.out.println("sas测试");
                    /**
                     * 拿到测试类型
                     */
                    List<TblTester> tblTesters = tblTesterSasService.selectTblTesterPhone(tblTester);
                    /**
                     * 此人员已经做过sas测试
                     */
                    if (null!=tblTesters && tblTesters.size()>0){
                        /**
                         * 跳转到sas测试
                         */
                        System.out.println("此处应该跳转到sas测试结果页面");
                    }else {
                        /**
                         * 此人员没有做过sas测试，保存到sas人员表中
                         */
                        tblTesterSasService.insertTblTester(tblTester);
                        session.setAttribute("tblTester",tblTester);
                        myReturn.setData("/views/testQuestionSaS.jsp");
                    }
                    return super.getSuccessResult(myReturn);
                }
                case "sds测试":{
                    System.out.println("sds测试");
                    List<TblTester> tblTesters = tblTesterSdsService.selectTblTesterPhone(tblTester);
                    /**
                     * 此人员已经做过sds测试
                     */
                    if (null!=tblTesters && tblTesters.size()>0){
                        /**
                         * 展示sds测试结果页面
                         */
                        System.out.println("此处应该跳转到sds测试结果页面");
                    }else {
                        /**
                         * 没有做过sds测试
                         * 保存到sds测试人员表中
                         */
                        tblTesterSdsService.insertTblTester(tblTester);
                        session.setAttribute("tblTester",tblTester);
                        /**
                         * 将sds测试链接保存到data
                         */
                        myReturn.setData("/views/testQuestionSdS.jsp");
                    }
                    return super.getSuccessResult(myReturn);
                }
                default:{
                    /**
                     * 没有此类型的测试
                     */
                    return super.getFailResult(myReturn);
                }
            }
        }
        /**
         * 没有找到邀请码,操作失败
         */
        return super.getFailResult(myReturn);
    }

}
